package com.beta.service.pay;


import com.beta.dto.pay.PayRequestDto;
import com.beta.em.pay.PayRoutes;

import java.math.BigDecimal;

/**
 * 支付策略路由
 * Created by Martin on 2016/7/01.
 */
public interface PayStrategy {

    /**
     * 调用对应支付平台组装支付请求报文
     * @param payRoutes     传入需要的支付方式
     * @param payRequest  其他额外需要的参数
     * @return 生成的支付请求
     */
    String generatePayParams(PayRoutes payRoutes, PayRequestDto payRequest);

    /**
     * @return 支付失效时间（以分钟为单位）
     */
    Long getPayExpireMinutes(PayRoutes payRoutes);

    PayRoutes[] getPayRoutes();

    /**
     * @return 交易的手续费（百分比换算后的，例如 %0.45 ==> 0.0045）
     */
    BigDecimal getPayFeeRate(PayRoutes payRoutes);

}
